home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1994 January
/
1994-01a.d64
/
link 'em
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
8KB
|
206 lines
0 rem copyright 1994 - compute publications intl ltd - all rights reserved
1 ifa=0thena=1:load"link.data",8,1
2 poke53280,0:poke53281,0:poke53270,216:poke53282,2:poke53283,1:poke788,52
3 poke792,193:poke56578,63:poke56576,196:poke53272,18:poke648,196
4 print"[154][147]"chr$(14)chr$(8):gosub100
5 x=5:y=5:gosub138:print"[158][206]"z$"[208]":fork=0to2:printtab(5)"[210]o"spc(26)"o[210]":next
6 printtab(5)"[209]"z$"[211]"
7 fork=0to25:forl=0to2:poke50423+k+l*40,128+k+l*26:next:next:x=7:y=11:gosub138
8 printsp$:printtab(7)"o[146]createdo[146]by:o[146]johno[146]camerono":printtab(7)sp$
9 printtab(11)""left$(sp$,19):printtab(11)"o[146]@o[146]copyrighto[146]1994o"
10 printtab(11)left$(sp$,19):printtab(11)"o[146]computeo[146]magazineo"
11 printtab(11)left$(sp$,19):printtab(13)"[158])o[146]presso[146]fireo[146]("
12 fork=0to7:ms=fnrn(253)+1:poke51456+k,ms:ml=1:gosub94
13 if((peek(56320)and16)=0)or((peek(56321)and16)=0)thenk=10
14 next:ifk<10then12
15 fork=0to7:poke51456+k,0:next
16 print"[147][156] [176]"bd$"[174]":fork=0to13:print"[221]"spc(36)"[221]":next
17 gosub93:print"";
18 fork=0to1:forl=0to1:print"[221] [221] [221]";:next:print"";:next
19 print"[173][192][178][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][189][173][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][178][192][189]"
20 fork=0to4:print"[221]"spc(32)"[221]":next:print"[173]"left$(bd$,32)"[189]";
21 x=14:y=0:gosub138:print"([158] link 'em )"
22 fork=2to18step2:fory=1to13step2:x=k:gosub138:gosub155:printsq$(0)
23 x=38-k:gosub138:gosub155:printsq$(0):next:next
24 x=6:y=19:gosub138:print"how many to play against you?"
25 nm=3:gosub55:gosub59:np=ch+1:gosub71:rm=126:cp=1:px=0:py=0
26 fork=1tonp:ps(k)=0:pn$(k)="ball"+str$(k):gosub140:next
27 fork=1tonp:y=16:gosub143:poke646,cl(k)-8:printpn$(k):next
28 fork=1tonp:poke646,1-2*(cp<>k):gosub99
29 gosub141:next
30 gosub48:pokesp+21,1:ox=px:oy=py
31 gosub73
32 px=px-(jr=8andpx<17)+17*(jr=8andpx>16)+(jl=4andpx>0)-17*(jl=4andpx<1)
33 py=py-(jd=2andpy<6)+6*(jd=2andpy>5)+(ju=1andpy>0)-6*(ju=1andpy<1)
34 iffbthen36
35 ifpx=oxandpy=oythen31
36 gosub48:iffbthenpokesp+21,0:gosub159:goto38
37 goto30
38 ifrm>0then28
39 x=0:y=15:gosub138:gosub93
40 wn=1:bg=0:fork=1tonp:print"[159]":gosub99
41 ifps(k)>bgthenbg=ps(k):wn=k
42 next:k=wn:gosub143:gosub144:print""sc$
43 x=5:y=21:gosub138:print"[159]player"wn"[157][159]: you are the winner!"
44 forzk=1to4:cp=k:x=4:y=19:gosub138:poke646,cl(zk)and7:print"[206]"z$"[207][207][208]"
45 fork=1to3:printtab(4)"[210]"spc(30)"[210]":next:printtab(4)"[209]"z$"[207][207][211]"
46 if((peek(56320)and16)=0)or((peek(56321)and16)=0)then16
47 nextzk:goto44
48 gosub150:pokesp,sx:pokesp+16,lr:pokesp+1,sy:return
49 end
50 x=4+int((33-3*nm)/2):y=19:gosub138:fork=0tonm-1
51 s1(k)=cl(fnrn(3)+1):s2(k)=fnrn(6)
52 f=0:ifk>0thengosub57
53 iff=1then51
54 poke646,s1(k):printfm$(s2(k))" ";:next:print
55 x=4+int((33-3*nm)/2):y=21:gosub138:fork=0tonm-1
56 print"[154]"nu$(k)" ";:next:print:return
57 forl=0tok-1:ifs1(l)=s1(k)ands2(l)=s2(k)thenf=1:l=k
58 next:return
59 ch=0
60 y=22:gosub67:printar$
61 ol=ch:gosub73:ch=ch-(jr=8andch<nm-1)+(jl=4andch>0)
62 ifch<>olthenz=x:x=4+int((33-3*nm)/2)+3*ol:gosub138:print" ":gosub66
63 ifnotfbthen60
64 ms=30:ml=10:gosub94
65 ch=ol:y=21:gosub138:print"[151]"zz$(ch)"[157][157] ":ch=ch+1:return
66 x=z:ms=50:ml=10:gosub94:return
67 x=4+int((33-3*nm)/2)+3*ch:gosub138:return
68 y=21:ch=c1:gosub67:a$=zz$(ch):a=od(ch):zz$(ch)=zz$(c2):print"[154]"zz$(ch)
69 od(ch)=od(c2):ch=c2:gosub67:od(c2)=a
70 zz$(ch)=a$:print"[154]"a$:return
71 x=4:fory=19to23:gosub138:print" ":next
72 return
73 jy=15-(peek(j)and15):ju=jyand1:jd=jyand2:jl=jyand4:jr=jyand8
74 fb=((peek(j)and16)=0)
75 ifju=0andjd=0andjr=0andjl=0andfb=0then77
76 return
77 a=-(j=56320)+(j=56321):j=j+a:goto73
78 forz1=0to7:x0=px:y0=py
79 ify0<3and(z1<2orz1=7)then91
80 ify0>4and(z1>2andz1<6)then91
81 ifx0<3and(z1>4)then91
82 ifx0>14and(z1>0andz1<4)then91
83 forz2=0to2:x0=x0+xd(z1):y0=y0+yd(z1):b0=(x0+1)+y0*18
84 ifx0<0orx0>17ory0<0ory0>6thenz2=9:goto86
85 ifun(b0)<>(9+cp)thenz2=9
86 nextz2:ifz2=10then91
87 fork=1tonp:poke646,1-2*(cp<>k):gosub99:next
88 un(b0)=20:x=2+x0*2:y=1+y0*2:gosub138:poke646,cl(cp):printbl$(5)
89 b0=(px+1)+py*18:x=2+px*2:y=1+py*2:gosub138:printbl$(5):un(b0)=20
90 ps(cp)=ps(cp)+250:ms$="[158]four in a row! bonus 250 pts!":gosub145
91 nextz1
92 return
93 print"[156][171][192][192]( )[192][192][178][192][192]( )[192][192][174][176][192][192]( )[192][192][178][192][192]( )[192][192][179]":return
94 pokeso+5,10:pokeso+6,5:pokeso+24,7:pokeso,0:pokeso+1,ms
95 pokeso+4,33:forsz=1toml:next:pokeso+4,32:return
96 ml=5:forms=200to10step-10:gosub94:next:return
97 ml=5:forms=10to200step10:gosub94:next:return
98 ml=1:forms=0to255step5:gosub94:next:return
99 y=17:gosub143:gosub144:printsc$:return
100 z$="[207]":fork=0to26:z$=z$+"[207]":next
101 x$="":y$=""
102 sp$="":fork=0to25:sp$=sp$+"o":next
103 bd$="[192]":fork=0to34:bd$=bd$+"[192]":next
104 fork=0to5:readbl$(k):next
105 data"[","\","]","^_","[193][194][157][157][195][196][145]","#$[157][157]%&[145]"
106 fork=0to5:readfm$(k):next:fm$(6)=bl$(4):j=56320
107 data"]][157][157]]][145]","^_[157][157][212][213][146][145]","[186][187][157][157][188][190][145]","*+[157][157]-/[145]","^_[157][157]]][145]","]][157][157][212][213][146][145]"
108 fork=0to8:readnu$(k):next:readar$
109 data"[223][160]","[161][162]","[163][164]","[165][166]","[167][168]","[169][170]","[172][175]","[180][181]","[184][185]","[155][182][183]"
110 fork=0to4:readsq$(k):next:fork=0to4:readsn$(k),sc(k):next
111 data"[151][197][198][157][157][199][200][145]",";<[157][157]=>[145]","[201][202][157][157][203][204][145]","[151][214][215][157][157][216][217][145]","[151][218][219][157][157][220][255][145]"
112 data"[207][157][208][145]",10,"[205][157][206][145]",15,"[209][157][210][145]",25,"[211][157][212][145]",50,"[213][157][206][145]",75
113 fork=1to4:readcl(k):next:data10,14,13,15
114 dim un(126)
115 so=54272:fork=0to24:pokeso+k,0:next:pokeso+15,255:pokeso+18,128
116 pokeso+24,128
117 def fnrn(x)=int((peek(so+27)/256)*(x+1))
118 up$="your score goes up by "
119 sp=53248:pokesp+21,0:poke51192,0:pokesp,39:pokesp+1,57:pokesp+16,0
120 pokesp+39,10:fork=49152to49203step3:pokek,192:pokek+1,0:pokek+2,192:next
121 fork=0to1:poke49152+k,255:poke49203+k,255:next
122 fork=49206to49216:pokek,0:next:gosub130
123 cs$(0)=sn$(2)+sn$(3):cs$(1)=sn$(3)+sn$(0):cs$(2)=sn$(4)+sn$(3)
124 cs$(3)=sn$(1)+sn$(0)+sn$(0):cs$(4)=sn$(1)+sn$(3)+sn$(0)
125 cs$(5)=sn$(2)+sn$(0)+sn$(0):cs$(6)=sn$(2)+sn$(3)+sn$(0)
126 fork=0to6:reads2$(k):next:data25,50,75,100,150,200,250
127 fork=0to7:readxd(k),yd(k):next
128 data0,-1,1,-1,1,0,1,1,0,1,-1,1,-1,0,-1,-1
129 return
130 fork=0to8:zz$(k)=nu$(k):od(k)=k:next:return
131 zy(0)=fnrn(nm-1):fork=1tonm-1
132 zy(k)=fnrn(nm-1):fl=0:forl=0tok-1:ifzy(k)=zy(l)thenfl=1:l=k
133 nextl:iffl=1then132
134 nextk:return
135 f=0:fork=0tonm-1:ifzy(k)<>od(k)thenf=1:k=nm
136 next:iff=0thenfl=1
137 return
138 print""left$(x$,x)left$(y$,y);:return
139 x=5*k+(4*(k-1))-(k>2):return
140 gosub139:y=15:gosub138:poke646,cl(k):print"^_":return
141 gosub139:x=x-1:y=15:gosub138:poke646,1-2*(cp<>k)
142 print"()":return
143 x=3*k+(6*(k-1))-(k>2):gosub138:return
144 s$=str$(ps(k)):sc$=right$("000000"+right$(s$,len(s$)-1),6):return
145 ox=x:oy=y:gosub71:x=14:y=20:gosub138:print"[191] player"cp"[157] [191]"
146 x=4+int((34-len(ms$))/2):y=22:gosub138:printms$
147 a=(peek(646)and7):a2=-(a=2)-2*(a=5)-3*(a=7):ona2gosub96,97,98
148 forl=1to2000:next:zk=fre(0):gosub71:x=ox:y=oy:return
149 gosub138:print" [157][157] ":un(b)=9+cp:gosub156:return
150 xx=2+px*2:yy=1+py*2:sy=57+16*py:lr=-(px>13):sx=39+16*px+256*(lr=1)
151 return
152 cp=cp+1:ifcp>npthencp=1
153 return
154 gosub152:return
155 b=int(x/2)+int(y/2)*18:un(b)=fnrn(8)+1:ms=b:ml=1:gosub94:return
156 poke646,cl(cp):forz1=0to4:x=xx:y=yy:gosub138
157 printbl$(z1):ms=15*z1:ml=25:gosub94:next:gosub78:return
158 b=int(xx/2)+int(yy/2)*18:a=un(b):return
159 gosub158:ifa=0then162
160 x=xx:y=yy: